b199a1b76ca7608b0e61d728249a9e4d8e62ab6b,java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/PsiResolveHelperImpl.java,PsiResolveHelperImpl,inferMethodTypeParameterFromParent,#PsiElement#PsiCallExpression#PsiTypeParameter#PsiSubstitutor#ParameterTypeInferencePolicy#,821

Before Change


            }
            final PsiMethod method = LambdaUtil.getFunctionalInterfaceMethod(functionalInterfaceType);
            if (method == null || methodParamsDependOnTypeParams((PsiLambdaExpression)expression, method.getParameterList().getParameters(), 
                                                                 PsiUtil.resolveGenericsClassInType(functionalInterfaceType).getSubstitutor(), typeParameter)) {
              return getFailedInferenceConstraint(typeParameter);
            }
          }

After Change


            }
            final PsiMethod method = LambdaUtil.getFunctionalInterfaceMethod(functionalInterfaceType);

            final PsiClassType.ClassResolveResult resolveResult = PsiUtil.resolveGenericsClassInType(functionalInterfaceType);
            if (method == null || methodParamsDependOnTypeParams((PsiLambdaExpression)expression, method.getParameterList().getParameters(),
                                                                 TypeConversionUtil.getSuperClassSubstitutor(method.getContainingClass(), resolveResult.getElement(), resolveResult.getSubstitutor()), typeParameter)) {
              return getFailedInferenceConstraint(typeParameter);
            }
          }